# -*- codeing = utf-8 -*-
# @Time : 2021/2/25 13:52
# @Atuthor: 朱朱
# @File: 085闭包的概念.py
# @Software: PyCharm
# 如果在一个内部函数里，对在外部作用域（但不是在全局作用域）的变量进行引用，
# 那么内部函数就被认为是闭包(clo sure).
def outer():
    x = 10 # 在外部函数里定了一个变量x,是一个局部变量

    def inner():
        nonlocal x #在内部函数,修改外部函数的局部变量 nonlocal
        y = x+1 # 这里的x,不再是新增的变量,而是外部函数的变量x
        print('inner里的y=',y)
        x = 20 # 这是内部函数自己创建的变量x
        z = 0
        z = z+x
        print('inner里的xz',z)
    return inner

outer()()
# 输出如下结果
# inner里的y= 11
# inner里的xz 20